<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // Promise方法 all()   any()  rase()
        function fn1() {
            new Promise((res, rej) => {
                var a = true
                if (a) {
                    res('成功')
                } else {
                    rej('失败')
                }
            }).then(val => {
                console.log(val);
            }).catch(e => {
                console.log(e);

            },1000)
        }fn1()
                function fn2() {
            new Promise((res, rej) => {
                var a = true
                if (a) {
                    res('成功')
                } else {
                    rej('失败')
                }
            }).then(val => {
                console.log(val);
            }).catch(e => {
                console.log(e);

            },2000)
        }fn2()

                function fn3() {
            new Promise((res, rej) => {
                var a = true
                if (a) {
                    res('成功')
                } else {
                    rej('失败')
                }
            }).then(val => {
                console.log(val);
            }).catch(e => {
                console.log(e);

            },3000)
        }fn3()
    //  Promise.a11()只有全部返回的是成功的结果，才会执行成功的操作，只有有一个返回的是失败的结果，就会执行失败的操作
        Promise.all([fn1(),fn2(),fn3()])
        .then(a =>{
            console.log(a)
        })
        .catch(e =>{
            console.log(e)
        })
        
        // Promise.any()只要有一个返回的是成功的结果，就会执行成功的操作，只有全部返回的是失败的结果，才会执行失败的操作
         Promise.any([fn1(),fn2(),fn3()])
        .then(a =>{
            console.log(a)
        })
        .catch(e =>{
            console.log(e)
        })
        // Promise.race()哪个代码先执行完毕，就执行它所返回的结果
          Promise.race([fn1(),fn2(),fn3()])
        .then(a =>{
            console.log(a)
        })
        .catch(e =>{
            console.log(e)
        })
    </script>
</body>

</html>